package com.demo.paypalmanagement.model.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 商品表，存储系统中的商品信息
 * </p>
 *
 * @author dayu
 * @since 2024-12-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("products")
public class Products implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 商品ID，主键，自增
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 商品编码，唯一标识商品
     */
    private String productCode;

    /**
     * 商品库存数量，默认为0
     */
    private Integer stockQuantity;

    /**
     * 商品状态，1表示上架，0表示下架，默认为1
     */
    private Integer isActive;

    /**
     * 是否奖品，1表示是，0表示不是，默认为1
     */
    private Integer isPrize;

    /**
     * 商品创建时间，默认为当前时间戳
     */
    private LocalDateTime createdAt;

    /**
     * 商品信息最后更新时间，默认为当前时间戳
     */
    private LocalDateTime updatedAt;

    /**
     * 商品主图
     */
    private String mainImage;

    /**
     * 商品子图列表，以数组格式存储
     */
    private String subImages;

    /**
     * 商品名称，不能为空
     */
    private String name;

    /**
     * 商品价格，保留两位小数
     */
    private BigDecimal price;

    /**
     * 商品折前价格，保留两位小数
     */
    private BigDecimal originalPrice;

    /**
     * 商品描述
     */
    private String description;

    private String weight;
    private String spec;


}
